View Javadoc
1 /************************************************************ 2 * Copyright * 3 * Portions of this software are Copyright (c) 1993 - 2002, * 4 * Chad Z. Hower (Kudzu) and the Indy Pit Crew * 5 * - http://www.nevrona.com/Indy/ * 6 ************************************************************/ 7 package org.indy; 8 9 /*** 10 * IdURI 11 * 12 *@author owen 13 */ 14 public class IdURI { 15 private String host = null; 16 17 /*** 18 * Description of the Field 19 */ 20 protected String port = null; 21 22 /*** 23 * Description of the Field 24 */ 25 protected String document = null; 26 27 /*** 28 * Description of the Field 29 */ 30 protected String path = null; 31 32 /*** 33 * Description of the Field 34 */ 35 protected String protocol = null; 36 37 /*** 38 * Constructor for the IdURI object 39 */ 40 protected IdURI() { 41 } 42 43 /*** 44 * Gets the host attribute of the IdURI object 45 * 46 *@return The host value 47 */ 48 public String getHost() { 49 return host; 50 } 51 52 /*** 53 * Gets the port attribute of the IdURI object 54 * 55 *@return The port value 56 */ 57 public String getPort() { 58 return port; 59 } 60 61 /*** 62 * Gets the document attribute of the IdURI object 63 * 64 *@return The document value 65 */ 66 public String getDocument() { 67 return document; 68 } 69 70 /*** 71 * Gets the path attribute of the IdURI object 72 * 73 *@return The path value 74 */ 75 public String getPath() { 76 return path; 77 } 78 79 /*** 80 * Gets the protocol attribute of the IdURI object 81 * 82 *@return The protocol value 83 */ 84 public String getProtocol() { 85 return protocol; 86 } 87 88 static String normalizePath(String path) { 89 char[] chars = new char[path.length()]; 90 91 path.getChars(0, path.length() - 1, chars, 0); 92 93 for (int i = 0; i < chars.length; i++) { 94 switch (chars[i]) { 95 //remember '//'->'\' ! 96 case '//': 97 chars[i] = '/'; 98 99 break; 100 101 default: 102 break; 103 } 104 } 105 106 return new String(chars); 107 } 108 109 /*** 110 * Description of the Method 111 * 112 *@param uri Description of the Parameter 113 *@return Description of the Return Value 114 */ 115 public static IdURI pasreURI(String uri) { 116 uri = normalizePath(uri); 117 118 IdURI res = new IdURI(); 119 120 int tokenPos = 0; 121 122 if ((tokenPos = uri.indexOf("://")) > -1) { 123 res.protocol = uri.substring(0, tokenPos); 124 125 126 //inc the tokenPosition 127 tokenPos += 3; 128 } 129 else { 130 tokenPos = 0; 131 132 //reset! 133 } 134 135 int portPos = 0; 136 137 int nextSlash = uri.indexOf("/", tokenPos); 138 139 if ((portPos = uri.indexOf(':', tokenPos)) > tokenPos) { 140 res.host = uri.substring(tokenPos, portPos); 141 res.port = uri.substring(portPos + 1, nextSlash); 142 } 143 else { 144 res.host = uri.substring(tokenPos, nextSlash); 145 } 146 147 tokenPos = nextSlash; 148 nextSlash = uri.indexOf('/', tokenPos); 149 150 int lastSlash = uri.lastIndexOf('/'); 151 152 //if the next / is the last one, then we have no path 153 if (nextSlash != lastSlash) { 154 res.path = uri.substring(nextSlash + 1, lastSlash); 155 tokenPos = lastSlash; 156 } 157 158 char[] document = new char[uri.length() - tokenPos + 1]; 159 160 res.document = uri.substring(tokenPos + 1); 161 162 return res; 163 } 164 165 /*** 166 * The main program for the IdURI class 167 * 168 *@param args The command line arguments 169 */ 170 public static void main(String[] args) { 171 IdURI test = pasreURI("/this/big/path/doc.html"); 172 173 System.err.println(test.protocol); 174 System.err.println(test.host); 175 System.err.println(test.port); 176 System.err.println(test.path); 177 System.err.println(test.document); 178 } 179 }

This page was automatically generated by Maven